﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ProjetoJornada_DAL.Repositorio;
using Basicas;
using Basicas.Utils;
using Basicas.Utils.excecoes;

namespace ProjetoJornada_Negocios.Negocio
{
    public class NegocioInstrutor_Monitor
    {
        #region Atributo
        RepInstrutor_Monitor repInstrutor_Monitor;
        #endregion

        #region Construtor
        public NegocioInstrutor_Monitor()
        {
            this.repInstrutor_Monitor = new RepInstrutor_Monitor();
        }
        #endregion

        #region Metodos
        public Boolean Inserir(Instrutor_Monitor instrutor_Monitor)
        {
            try
            {
                Double valorContrato = instrutor_Monitor.ValorContrato;

                if (valorContrato >= 0)
                {
                    return this.repInstrutor_Monitor.Inserir(instrutor_Monitor);
                }
                else
                {
                    throw new ValorContratoNuloException();
                }
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "inserirInstrutor_Monitor");
                throw ex;
            }
        }

        public Boolean Remover(String cpf)
        {
                return repInstrutor_Monitor.Remover(cpf);
        }

        public Boolean Editar(Instrutor_Monitor instrutorMonitor)
        {
            try
            {
                return this.repInstrutor_Monitor.Editar(instrutorMonitor);
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "editarInstrutorMonitor - Negocio");
                throw ex;
            }
        }

        public Instrutor_Monitor ConsultarInstrutorMonitorPorCPF(String cpf)
        {
            try
            {
                return repInstrutor_Monitor.ConsultarInstrutorMonitorPorCPF(cpf);
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "ConsultarInstrutorMonitorPorCPF - Negócio");
                throw ex;
            }
        }

        public List<Instrutor_Monitor> GetInstrutorMonitorPorNome(String nome)
        {
            try
            {
                return this.GetInstrutorMonitorPorNome(nome);
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "GetInstrutorMonitorPorNome - Negócio");
                throw ex;
            }
        }

        public List<Instrutor_Monitor> GetTodosInstrutorMonitor()
        {
            try
            {
                return this.repInstrutor_Monitor.GetTodosInstrutorMonitor();               
            }
            catch (Exception ex)
            {
                Auxiliar.GravaLog(ex.Message, "GetTodosInstrutorMonitor - Negocio");
                throw ex;
            }
        }
        #endregion
    }
}
